package com.hyzx.qbasic.admin.domain.service;

import com.github.pagehelper.PageInfo;
import com.hyzx.qbasic.admin.model.po.ProcessDefinitionPagedInfoPO;
import com.hyzx.qbasic.admin.model.vo.req.admin.AddProcessDefinitionReq;
import com.hyzx.qbasic.admin.model.vo.req.admin.DeleteProcessDefinitionReq;
import com.hyzx.qbasic.admin.model.vo.req.admin.EditProcessDefinitionReq;
import com.hyzx.qbasic.admin.model.vo.req.admin.GetProcessDefinitionListReq;
import com.hyzx.qbasic.admin.model.vo.res.BaseOperationRes;
import com.hyzx.qbasic.admin.model.vo.res.admin.GetProcessDefinitionInfoRes;
import com.hyzx.qbasic.admin.model.vo.res.admin.GetProcessStepsRes;

import java.util.List;

/**
 * Created by 黄江华 on 2018/11/22
 */

public interface IProcessDefinitionService {

    PageInfo<ProcessDefinitionPagedInfoPO> getPagedProcessDefinitionList(GetProcessDefinitionListReq req);

    List<ProcessDefinitionPagedInfoPO> getProcessDefinitionListByCategoryId(Integer processCategoryId);

    List<ProcessDefinitionPagedInfoPO> getProcessDefinitionListByCategoryKey(String processCategoryKey);

    BaseOperationRes addProcessDefinition(AddProcessDefinitionReq req);

    BaseOperationRes deleteProcessDefinition(DeleteProcessDefinitionReq req);

    GetProcessDefinitionInfoRes getProcessDefinitionInfo(int processDefinitionId);

    BaseOperationRes editProcessDefinition(EditProcessDefinitionReq req);

    GetProcessStepsRes getProcessSteps(Integer processDefinitionId);
}
